$(function () {
    var pageSize = 2;
    var currentPage = 1;
    render();

    function render() {
        $.ajax({
            type: 'get',
            url: '/product/queryProductDetailList',
            data: {
                page: currentPage,
                // 对象的键值如果同名，可以省略一个
                pageSize
            },
            dataType: 'json',
            success: function (res) {
                console.log(123, res);
                var htmlStr = template('tmp', res);
                $('.lt-content tbody').html(htmlStr);
                setPage(res.total);
            }
        })

    }

    function setPage(total) {
        $("#paginator").bootstrapPaginator({
            bootstrapMajorVersion: 3, //默认是2，如果是bootstrap3版本，这个参数必填
            currentPage: currentPage, //当前页
            totalPages: Math.ceil(total / pageSize), //总页数
            size: "small", //设置控件的大小，mini, small, normal,large
            onPageClicked: function (event, originalEvent, type, page) {
                //为按钮绑定点击事件 page:当前点击的按钮值
                currentPage = page;
                render();
            }
        });
    }

    //    思考下拉菜单在什么时候渲染   
    $.ajax({
        type: 'get',
        url: '/category/querySecondCategoryPaging',
        data: {
            page: 1,
            pageSize: 100
        },
        dataType: 'json', //text,json,xml,jsonp
        success: function (res) {
            console.log(res);
            //渲染下拉菜单
            $('.two-list').html(template('dropdownTmp', res));
        }
    })

    // 下拉列表选中 
    // 1- 点击a标签，把a标签的文本赋值给 按钮  
    // 2- 把a表单的data-id 赋值给隐藏域  
    $('.two-list').on('click', 'a', function () {
        $('.cate-title').text($(this).text());
        $("#brandId").val($(this).data('id'));
        // 在下拉列表选中后，恢复下拉列表选中状态 
        $('#form').data('bootstrapValidator').updateStatus('brandId', 'VALID');

    })

    // 初始化文件上传插件 
    // 图片上传要求：
    // 只保留最近上传的三张图片，做轮播图  （记录图片的个数和顺序： 用数组来解决 ）
    // 把最新图片添加在盒子的最前面
    // 图片预览 
    var picArr = []; // 记录图片的个数和顺序
    $("#fileupload").fileupload({
        dataType: "json",
        //e：事件对象
        //data：图片上传后的对象，通过data.result.picAddr可以获取上传后的图片地址
        done: function (e, data) {
            console.log(111, data.result);
            var img = data.result;
            // 记录图片顺序 
            picArr.unshift(img);
            // 预览图片
            $('#imgBox').prepend('<img src="' + img.picAddr + '" width="100">');
            // 判断图片是否大于三张 
            if (picArr.length > 3) {
                // 删除数组的最后一个元素
                picArr.pop();
                //选择器区分一下
                // $("#imgBox img:last-child").remove();
                $("#imgBox img:last-of-type").remove();  
            }
            // 如果图片够了三张， 数据合理 把图片地址赋值给 隐藏域 
            if (picArr.length == 3) {
                $('#picArr').val(JSON.stringify(picArr));
                //   当图片够三张时， 手动恢复图片的校验状态
                $('#form').data('bootstrapValidator').updateStatus('picArr', 'VALID');
            }
            console.log(picArr);
        }
    });

    //使用表单校验插件
    $("#form").bootstrapValidator({
        //1. 指定不校验的类型，默认为[':disabled', ':hidden', ':not(:visible)'],可以不设置
        excluded: [':disabled'],

        //2. 指定校验时的图标显示，默认是bootstrap风格
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },

        //3. 指定校验字段
        fields: {
            //校验用户名，对应表单的name=brandId属性
            brandId: {
                validators: {
                    //不能为空
                    notEmpty: {
                        message: '用请选择二级分类'
                    },
                }
            },
            //校验用户名，对应表单的name=proName属性
            proName: {
                validators: {
                    //不能为空
                    notEmpty: {
                        message: '请求输入商品名称'
                    },
                }
            },
            //校验用户名，对应表单的name=proDesc属性
            proDesc: {
                validators: {
                    //不能为空
                    notEmpty: {
                        message: '请求输入商品描述'
                    },
                }
            },
            //校验用户名，对应表单的name=num属性
            num: {
                validators: {
                    //不能为空
                    notEmpty: {
                        message: '请求输入商品 库存'
                    },
                    //正则校验
                    regexp: {
                        regexp: /^[1-9]\d*$/,
                        message: '库存必须是非0开头的数字'
                    }
                }
            },
            //校验用户名，对应表单的name=size属性
            size: {
                validators: {
                    //不能为空
                    notEmpty: {
                        message: '请求输入商品尺码'
                    },
                    //正则校验
                    regexp: {
                        regexp: /^[1-9]\d-[1-9]\d$/,
                        message: '尺码必须是xx-xx的格式， x数字'
                    }
                }
            },
            //校验用户名，对应表单的name=oldPrice属性
            oldPrice: {
                validators: {
                    //不能为空
                    notEmpty: {
                        message: '请求输入商品原价'
                    },
                }
            },
            //校验用户名，对应表单的name=price属性
            price: {
                validators: {
                    //不能为空
                    notEmpty: {
                        message: '请求输入商品现价'
                    },
                }
            },
            //校验用户名，对应表单的name=picArr属性
            picArr: {
                validators: {
                    //不能为空
                    notEmpty: {
                        message: '请求上传三张图片'
                    },
                }
            },
        }
    });

    // 添加商品
    // 1- 点击提交按钮，在表单数据合理的情况下，向后台发送请求
    // 2- 后台添加成功后， 页面重新渲染 ，隐藏模态框，表单重置， 手动清空图片和按钮 的样式 
    $('#form').on('success.form.bv', function (e) {
        e.preventDefault();
        // ajax提交 
        $.ajax({
            type: 'post',
            url: '/product/addProduct',
            data: $('#form').serialize(),
            dataType: 'json', //text,json,xml,jsonp
            success: function (res) {
                console.log(res);
                // 页面重新渲染 
                render();
                // 隐藏模态框
                $('.modal-add').modal('hide');
                // 表单重置 数据 校验样式
                $('#form').data('bootstrapValidator').resetForm(true);
                // 手动清空图片和按钮 的样式 
                $('#imgBox').empty();
                $('.cate-title').text('请选择二级分类');
                picArr = []; // 清空picArr数组 
                // 防止删除添加图片的数据，对下次添加产生影响；
            }
        })
    });
})